package allaboutmybook;

import dao.DAOLogin;
import dao.DaoConcretoLogin;
import excecoes.CampoImportanteEmBrancoException;
import excecoes.ChaveJaExisteException;
import excecoes.DAOException;

public class GerenteConcretoLogin implements GerenteLogin
{
	private DAOLogin daoLogin;
	private static GerenteConcretoLogin instanciaGerenteLogin;
	
	
	private GerenteConcretoLogin()
	{
		this.daoLogin = new DaoConcretoLogin();
	}
	
	public synchronized static GerenteConcretoLogin getInstance()
	{
		if(instanciaGerenteLogin == null)
		{
			instanciaGerenteLogin = new GerenteConcretoLogin();
		}
		
		return instanciaGerenteLogin;
	}
	
	public boolean loginEstahCorreto(String nomeUsuario, String senha) throws DAOException
	{
		boolean loginEstahCorreto = this.daoLogin.loginEstahCorreto(nomeUsuario, senha);
		return loginEstahCorreto;
	}
	
	public void criarLogin(String nomeUsuario, String senha) throws ChaveJaExisteException,DAOException, CampoImportanteEmBrancoException
	{
		if(nomeUsuario == null || nomeUsuario.length() <= 0)
		{
			throw new CampoImportanteEmBrancoException();
		}
		else
		{
			try
			{
				this.daoLogin.criarLogin(nomeUsuario, senha);
			}
			catch(ChaveJaExisteException excecao)
			{
				throw new ChaveJaExisteException();
			}
		}
	}
}
